
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app_study/utils/ImageUtil.dart';
import 'package:flutter_app_study/view/BannerWidget.dart';
import 'package:flutter_app_study/view/NoticeWidget.dart';
import 'package:ok_image/ok_image.dart';

class ZhiBoFragment extends StatefulWidget {
  @override
  _ZhiBoFragmentState createState() => _ZhiBoFragmentState();
}

class _ZhiBoFragmentState extends State<ZhiBoFragment> {
  List<BannerItem> bannerList = [];
  List<String> noticeList = [];
  List<Widget> gridList = [];

  @override
  void initState() {
    // TODO: implement initState
    BannerItem item = BannerItem.defaultBannerItem(
        '''http://n.sinaimg.cn/news/1_img/vcg/2b0c102b/64/w1024h640/20181024/wBkr-hmuuiyw6863395.jpg''',
        '''近日，北大全校教师干部大会刚刚召开，63岁的林建华卸任北大校长；原北大党委书记郝平接替林建华，成为新校长。曾在北京任职多年、去年担任山西高院院长的邱水平回到北大，担任党委书记。图为2018年5月4日，北京大学举行建校120周年纪念大会，时任北京大学校长林建华（右）与时任北京大学党委书记郝平（左）''');
    bannerList.add(item);
    item = BannerItem.defaultBannerItem(
        '''http://n.sinaimg.cn/news/1_img/vcg/2b0c102b/99/w1024h675/20181024/FGXD-hmuuiyw6863401.jpg''',
        '''邱水平、郝平、林建华均为“老北大人”，都曾离开北大，又重归北大任职。图为2018年5月4日，北京大学举行建校120周年纪念大会，时任北京大学党委书记郝平讲话''');
    bannerList.add(item);
    item = BannerItem.defaultBannerItem(
        '''http://n.sinaimg.cn/news/1_img/vcg/2b0c102b/107/w1024h683/20181024/kZj2-hmuuiyw6863420.jpg''',
        '''此番卸任的林建华，亦是北大出身，历任重庆大学、浙江大学、北京大学三所“双一流”高校校长。图为2018年5月4日，北京大学举行建校120周年纪念大会，时任北京大学校长林建华讲话。''');
    bannerList.add(item);
    item = BannerItem.defaultBannerItem(
        '''http://n.sinaimg.cn/news/1_img/vcg/2b0c102b/105/w1024h681/20181024/tOiL-hmuuiyw6863462.jpg''',
        '''书记转任校长的郝平，为十九届中央委员会候补委员。从北大毕业后留校，后离开北大，历任北京外国语大学校长、教育部副部长。2016年12月，时隔11年，郝平再回北大，出任北大党委书记。''');
    bannerList.add(item);
    for (int i = 0; i < 20; i++) {
      gridList.add(getItemContainer('位置$i'));
      noticeList.add('位置$i通知通知通知通知通知通知');
    }
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: ListView(children: <Widget>[
        BannerWidget(
          180,
          bannerList,
          bannerPress: (int position, BannerItem entity) {
            print("点击了$position位置");
          },
        ),
        NoticeWidget(noticeList),
        GridView.count(
            //嵌套解决方法
            physics: NeverScrollableScrollPhysics(),
            shrinkWrap: true,
            //水平子Widget之间间距
            crossAxisSpacing: 10.0,
            padding: EdgeInsets.all(10.0),
            //垂直子Widget之间间距
            mainAxisSpacing: 20.0,
            //子Widget宽高比例（没找到item高度，只能通过比例设置？）
            childAspectRatio: 2,
            crossAxisCount: 2,
            children: gridList),
        Container(
          height: 50,
        )
      ]),
    );
  }

  Widget getItemContainer(String item) {
    return Container(
      color: Colors.red,
      height: 50,
      width: 50,
      alignment: Alignment.center,
      child: Stack(
        alignment: Alignment.bottomLeft,
        children: <Widget>[
//          Image.network(
//              "http://2312a1a305.51mypc.cn:23334/upload/2020/2/900-a22d47c9a60541d385eb74ff40b6e1fd.png"),
//          Image.asset(ImageUtil.getImageAsset("long_wuman.jpeg")),
//          OKImage(url: "http://2312a1a305.51mypc.cn:23334/upload/2020/2/900-a22d47c9a60541d385eb74ff40b6e1fd.png"),
          CachedNetworkImage(
            imageUrl:
                "http://2312a1a305.51mypc.cn:23334/upload/2020/2/900-a22d47c9a60541d385eb74ff40b6e1fd.png",
//            placeholder: (context, url) => CircularProgressIndicator(),
            placeholder: (context, url) {
              return CircularProgressIndicator();
            },
            errorWidget: (context, url, error) => Icon(Icons.error),
          ),
          Padding(
            padding: const EdgeInsets.only(left: 5, right: 5),
            child: Row(
              children: <Widget>[
                Text(
                  "2333",
                  style: TextStyle(color: Colors.white, fontSize: 12),
                ),
                Text(
                  "  某某某某某某",
                  style: TextStyle(color: Colors.white, fontSize: 12),
                ),
                Expanded(
                    child: Text(
                  item,
                  textAlign: TextAlign.end,
                  style: TextStyle(color: Colors.white, fontSize: 12),
                )),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
